# Optional pretty-path compatibility. The panel displays a direct PHP URL,
# so the APK endpoint still works when URL rewriting is unavailable.
RewriteEngine On
# Preserve Authorization headers for Nuvio JWT endpoints under Apache CGI/FPM.
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]




# Reseller-scoped ClipBox API.
# The APK base is /api/{route}/clipbox and the app appends /api/... itself.
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/tmdb/(.+)/?$ clipbox/tmdb.php?owner_route=$1&tmdb_path=$2 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/scrapers/?$ clipbox/scrapers.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/bug-report/?$ clipbox/bug-report/index.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/auth/register/?$ clipbox/auth/register.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/auth/login/?$ clipbox/auth/login.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/auth/me/?$ clipbox/auth/me.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/update/?$ clipbox/update/index.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/devices/report/?$ clipbox/devices/report.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/config/?$ clipbox/config.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/privacy/?$ clipbox/privacy.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/push/poll/?$ clipbox/push/poll.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/clipbox/+api/sync/(favourites|history|resume|settings|watchlist)/?$ clipbox/sync/$2.php?owner_route=$1 [QSA,L]

# Reseller-scoped WaveO 2.1.1 Mobile and TV APIs
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/waveo/(mobile|tv)/?$ waveo/index.php?owner_route=$1&variant=$2 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/waveo/(mobile|tv)/(index|auth|config)\.php$ waveo/$3.php?owner_route=$1&variant=$2 [QSA,L]

# Reseller-scoped Janky portal API
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/janky/?$ janky/api.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/janky/api\.php$ janky/api.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/janky/portals\.php$ janky/portals.php?owner_route=$1 [QSA,L]

# Reseller-scoped TiviMate 5.3.3 API
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/tivimate/?$ tivimate/api.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/tivimate/api\.php$ tivimate/api.php?owner_route=$1 [QSA,L]

# Reseller-scoped Nuvio API
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/nuvio/?$ nuvio/index.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/nuvio/portals\.php$ nuvio/portals.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/nuvio/player_api\.php$ nuvio/player_api.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/nuvio/api/auth/login/?$ nuvio/login.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/nuvio/api/addons/?$ nuvio/addons.php?owner_route=$1 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/nuvio/api/plugins/?$ nuvio/plugins.php?owner_route=$1 [QSA,L]

RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/+api/branding/(logo|background)/?$ branding/image.php?owner_route=$1&kind=$2 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/branding/(logo|background)/?$ branding/image.php?owner_route=$1&kind=$2 [QSA,L]
RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/auth\.php$ client/auth.php?reseller=$1 [QSA,L]

RewriteRule ^([a-z0-9][a-z0-9-]{0,39})/?$ client/auth.php?reseller=$1 [QSA,L]
